<!DOCTYPE html>
<html lang="en" data-bs-theme="light">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>模块管理</title>
    <!-- <link
			href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
			rel="stylesheet"
			integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
			crossorigin="anonymous"
		/> -->
    <!-- Import all the bootstrap css files from css folder -->
    <link rel="stylesheet" href="css/styles.css" />
    <link rel="stylesheet" href="css/bootstrap.min.css" />

    <!-- Logo -->
    <link rel="simpleadmin-logo" href="favicon.ico" />

    <!--  Import BootStrap Javascript -->
    <script src="js/bootstrap.bundle.min.js"></script>
    <script src="js/alpinejs.min.js" defer></script>

    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
  </head>
  <body>
    <main>
      <div class="container my-4" x-data="cellScanner()">
        <nav class="navbar navbar-expand-lg mt-2">
          <div class="container-fluid">
            <a class="navbar-brand" href="/"
              ><span class="mb-0 h4 fw-bold">模块管理</span></a>
            <button
              class="navbar-toggler"
              type="button"
              data-bs-toggle="collapse"
              data-bs-target="#navbarText"
              aria-controls="navbarText"
              aria-expanded="false"
              aria-label="Toggle navigation"
            >
              <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarText">
              <ul class="navbar-nav me-auto mb-2 ml-4 mb-lg-0">
                <li class="nav-item">
                  <a class="nav-link" href="/">首页</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="/network.html">网络</a>
                </li>
                <li class="nav-item">
                  <a
                    class="nav-link active"
                    href="/scanner.html"
                    aria-current="page"
                    >扫描</a
                  >
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="/settings.html">设置</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="/sms.html">短信</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="/console">控制台</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="/deviceinfo.html"
                    >设备信息</a
                  >
                </li>
              </ul>
              <span class="navbar-text">
                <button class="btn btn-link text-reset" id="darkModeToggle">
                  暗黑模式
                </button>
              </span>
            </div>
          </div>
        </nav>

        <!-- <div class="row mt-3 mb-4">
          <div class="col">
            <div class="card">
              <div class="card-header">Live Signal</div>
              <div class="card-body">
                <div class="row mt-2 mb-2">
                  <p>Signal Graph</p>
                  <div>
                    <canvas id="myChart"></canvas>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div> -->

        <div class="row mt-3 mb-4">
          <div class="col">
            <div class="card">
              <div class="card-header">运营商扫描</div>
              <div class="card-body">
                <div class="card-text">
                  <table class="table">
                    <thead>
                      <tr>
                        <th scope="col">网络</th>
                        <th scope="col">运营商</th>
                        <th scope="col">频段</th>
                        <th scope="col">频率</th>
                        <th scope="col">PCI</th>
                        <th scope="col">RSRP</th>
                        <th scope="col">信号</th>
                      </tr>
                    </thead>
                    <tbody id="cellScanTableBody">
                      <!-- CELL ROWS HERE -->
                    </tbody>
                  </table>
                  <div>
                    <div class="col-md-4 mb-3">
                      <div class="form-group">
                        <label for="exampleFormControlSelect1"
                          >选择扫描模式</label
                        >
                        <select
                          class="form-select"
                          id="cellSelect"
                          x-model="cellScanMode"
                        >
                          <option selected>选择扫描模式</option>
                          <option value="Full Scan">扫描所有</option>
                          <option value="LTE Only">4G扫描</option>
                          <option value="NR5G Only">5G扫描</option>
                        </select>
                        <div id="cellSelectHelper" class="form-text">
                          运营商扫描将扫描您所在区域的所有4G和5G。扫描可能会断开您的网络，并需要几分钟才能完成.
                        </div>
                      </div>
                    </div>
                    <div
                      class="d-grid gap-2 d-md-flex justify-content-md-start"
                    >
                      <button
                        class="btn btn-primary me-md-2"
                        type="button"
                        x-on:click="startCellScan()"
                        :disabled="isLoading === true || cellScanMode === 'Unspecified' || cellScanMode === 'Select Scan Mode'"
                        x-text="isCellScanning ? '扫描中...' : '开始扫描'"
                      ></button>
                      <button
                        class="btn btn-danger"
                        type="button"
                        x-on:click="clearTableRowsBodyCellScan()"
                        :disabled="isLoading === true || resultDoneCell === false"
                      >
                        取消
                      </button>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>

        <div class="row">
          <div class="col">
            <div class="card">
              <div class="card-header">小区扫描</div>
              <div class="card-body">
                <table class="table">
                  <thead>
                    <tr>
                      <th scope="col">网络</th>
                      <th scope="col">频率</th>
                      <th scope="col">PCI</th>
                      <th scope="col">RSRP</th>
                      <th scope="col">信号</th>
                    </tr>
                  </thead>
                  <tbody id="neighbourCellTableBody">
                    <!-- NEIGHBOUR CELL ROWS HERE -->
                  </tbody>
                </table>
                <div>
                  <div class="col-md-4 mb-3">
                    <div class="form-group">
                      <label for="exampleFormControlSelect1"
                        >选择扫描模式</label
                      >
                      <select
                        class="form-select"
                        id="neighbourCellSelect"
                        x-model="neighbourCellsScanMode"
                      >
                        <option selected>扫描模式</option>
                        <option value="LTE and NR5G">扫描所有</option>
                        <option value="LTE">4G扫描</option>
                        <option value="NR5G">5G扫描</option>
                      </select>
                      <div id="neighbourCellSelectHelper" class="form-text">
                        小区扫描将仅扫描您网络供应商的4G或5G
                      </div>
                    </div>
                  </div>
                  <div class="d-grid gap-2 d-md-flex justify-content-md-start">
                    <button
                      class="btn btn-primary me-md-2"
                      type="button"
                      x-on:click="getNeighbourcellLTEandNR5G()"
                      :disabled="isLoading === true || neighbourCellsScanMode === 'Unspecified' || neighbourCellsScanMode === 'Select Scan Mode'"
                    >
                      开始小区扫描
                    </button>
                    <button
                      class="btn btn-danger"
                      type="button"
                      x-on:click="clearTableRowsBodyNeighbourCells()"
                      :disabled="isLoading === true || resultDoneNeighbourCell === false"
                    >
                      取消
                    </button>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </main>
    <script src="js/dark-mode.js"></script>
    <script>
      function cellScanner() {
        return {
          networkNames: {
            28967: "Aquafon JSC",
            28988: "A-Mobile LLSC",
            27601: "One Telecommunications",
            27602: "Vodafone Albania",
            27603: "Albtelecom",
            21303: "Andorra Telecom",
            28301: "Veon Armenia CJSC",
            28304: "Karabakh Telecom",
            28305: "K Telecom CJSC",
            28310: "Ucom LLC",
            23201: "A1 Telekom Austria",
            23203: "T-Mobile Austria GmbH",
            23205: "Hutchison Drei Austria",
            23207: "T-Mobile Austria",
            23208: "Lycamobile Austria",
            23209: "A1 Telekom Austria",
            23210: "Hutchison Drei Austria",
            23211: "A1 Telekom Austria",
            23212: "A1 Telekom Austria",
            23213: "T-Mobile Austria GmbH",
            23215: "Mundio Mobile Austria",
            23217: "MASS Response Service GmbH",
            23220: "MTEL Austrija GmbH",
            23291: "ÖBB",
            23292: "ArgoNET GmbH",
            25701: "A1 Belarus",
            25702: "Mobile TeleSystems",
            25704: "Belarusian Telecommunications Network",
            25706: "Belorussian Cloud Technologies",
            20601: "Proximus SA",
            20602: "Infrabel",
            20603: "Citymesh NV",
            20605: "Telenet",
            20606: "Lycamobile sprl",
            20608: "Nethys",
            20610: "Orange S.A.",
            20620: "Telenet",
            20630: "Unleashed NV",
            21803: "Public Enterprise Croatian Telecom Ltd.",
            21805: "RS Telecommunications JSC Banja Luka",
            21890: "BH Telecom",
            28401: "A1 Bulgaria",
            28403: "BTC",
            28405: "Yettel Bulgaria",
            28407: "НАЦИОНАЛНА КОМПАНИЯ ЖЕЛЕЗОПЪТНА ИНФРАСТРУКТУРА",
            28411: "Bulsatcom",
            28413: "Ti.com JSC",
            21901: "T-Hrvatski Telekom",
            21902: "Telemach",
            21910: "A1 Hrvatska",
            28001: "Cyprus Telecommunications Authority",
            28010: "Monaco Telecom",
            28020: "PrimeTel PLC",
            28022: "Lemontel Ltd",
            23001: "T-Mobile Czech Republic",
            23002: "O2 Czech Republic",
            23003: "Vodafone Czech Republic",
            23004: "Nordic Telecom Regional s.r.o.",
            23005: "PODA a.s.",
            23006: "Nordic Telecom 5G a.s.",
            23007: "T-Mobile Czech Republic",
            23098: "Správa železniční dopravní cesty, s.o.",
            23801: "TDC A/S",
            23802: "Telenor Denmark",
            23805: "Dansk Beredskabskommunikation A/S",
            23806: "Hi3G Denmark ApS",
            23808: "Voxbone mobile",
            23809: "Dansk Beredskabskommunikation A/S",
            23810: "TDC A/S",
            23811: "Dansk Beredskabskommunikation A/S",
            23812: "Lycamobile Denmark Ltd",
            23815: "Cibicom",
            23820: "Telia",
            23823: "Banedanmark",
            23842: "Greenwave Mobile IoT ApS",
            23866: "TT-Netværket P/S",
            23873: "Onomondo ApS",
            24801: "Telia Eesti",
            24802: "Elisa Eesti",
            24803: "Tele2 Eesti",
            24804: "OY Top Connect",
            24805: "CSC Telecom Estonia OÜ",
            24816: "SmartTel Plus OÜ",
            24820: "DOTT Telecom OÜ",
            24826: "IT-Decision Telecom OÜ",
            28801: "Føroya Tele",
            28802: "Nema",
            24403: "DNA Oy",
            24405: "Elisa Oyj",
            24407: "Nokia Solutions and Networks Oy",
            24412: "DNA Oy",
            24414: "Ålands Telekommunikation Ab",
            24417: "Liikennevirasto",
            24419: "Nettia Oy",
            24421: "Elisa Oyj",
            24426: "Compatel Ltd",
            24432: "Voxbone SA",
            24433: "Suomen Turvallisuusverkko Oy",
            24435: "Edzcom Oy",
            24436: "Telia Finland Oyj / Suomen Yhteisverkko Oy",
            24437: "Tismi BV",
            24491: "Telia Finland Oyj",
            20801: "Orange S.A.",
            20802: "Orange S.A.",
            20803: "MobiquiThings",
            20805: "Globalstar Europe",
            20806: "Globalstar Europe",
            20807: "Globalstar Europe",
            20808: "Altice",
            20809: "Altice",
            20810: "Altice",
            20811: "Altice",
            20812: "Truphone France",
            20813: "Altice",
            20814: "SNCF Réseau",
            20815: "Free Mobile",
            20816: "Free Mobile",
            20819: "Haute-Garonne numérique",
            20820: "Bouygues Telecom",
            20823: "Syndicat mixte ouvert Charente Numérique",
            20824: "Sierra Wireless",
            20825: "LycaMobile",
            20826: "Bouygues Telecom - Distribution",
            20827: "Coriolis Telecom",
            20828: "Airmob Infra Full",
            20829: "Cubic télécom France",
            20830: "Syma Mobile",
            20831: "Mundio Mobile",
            20834: "Cellhire France",
            20835: "Free Mobile",
            20836: "Free Mobile",
            20838: "Lebara France Ltd",
            20888: "Bouygues Telecom",
            20896: "Région Bourgogne-Franche-Comté",
            28201: "Silknet",
            28202: "MagtiCom",
            28203: "MagtiCom",
            28204: "Mobitel",
            28205: "Silknet",
            28207: "GlobalCell",
            28208: "Silknet",
            28209: "Gmobile",
            26201: "Telekom Deutschland GmbH",
            26202: "Vodafone D2 GmbH",
            26203: "Telefónica Germany GmbH & Co. oHG",
            26209: "Vodafone D2 GmbH",
            26210: "DB Netz AG",
            26212: "sipgate GmbH",
            26214: "Lebara Limited",
            26215: "None",
            26218: "NetCologne",
            26219: "Alliander AG",
            26220: "Enreach Germany GmbH",
            26223: "Drillisch Online AG",
            26243: "Lycamobile",
            26260: "DB Telematik",
            26270: "BDBOS",
            26298: "private networks",
            26601: "Gibtelecom",
            20201: "COSMOTE - Mobile Telecommunications S.A.",
            20202: "COSMOTE - Mobile Telecommunications S.A.",
            20205: "Vodafone Greece",
            20209: "NOVA",
            20210: "NOVA",
            20212: "Yuboto",
            20214: "CYTA",
            20216: "Inter Telecom",
            29001: "Tusass A/S",
            29002: "inu:it a/s",
            23403: "Jersey Airtel Ltd",
            23450: "JT Group Limited",
            23455: "Sure (Guernsey) Limited",
            21601: "Telenor Magyarország Zrt.",
            21602: "MVM Net Ltd.",
            21603: "DIGI Telecommunication Ltd.",
            21630: "Magyar Telekom Plc",
            21670: "Vodafone Magyarország Zrt.",
            21671: "Vodafone Magyarország Zrt.",
            21699: "Magyar Államvasutak",
            27401: "Iceland Telecom",
            27402: "Sýn",
            27404: "IMC Island ehf",
            27408: "Iceland Telecom",
            27411: "Nova ehf",
            27412: "IP fjarskipti",
            27491: "Neyðarlínan",
            27201: "Vodafone Ireland",
            27202: "Hutchison 3G Ireland limited",
            27203: "Eir Group plc",
            27205: "Hutchison 3G Ireland limited",
            27207: "Eir Group plc",
            27211: "Liffey Telecom",
            27213: "Lycamobile",
            27215: "UPC",
            27216: "Carphone Warehouse",
            27218: "Cubic Telecom Limited",
            27221: "Net Feasa Limited",
            23436: "Sure Isle of Man Ltd.",
            23458: "Manx Telecom",
            23473: "Bluewave Communications Ltd",
            22201: "Telecom Italia S.p.A.",
            22206: "Vodafone Italia S.p.A.",
            22207: "Noverca",
            22208: "Fastweb S.p.A.",
            22210: "Vodafone Italia S.p.A.",
            22230: "Rete Ferroviaria Italiana",
            22233: "Poste Mobile S.p.A.",
            22234: "BT Italia",
            22235: "Lycamobile",
            22236: "Digi Italy S.r.l.",
            22238: "OpNet S.p.A.",
            22241: "GO internet S.p.A.",
            22243: "Telecom Italia S.p.A.",
            22247: "Fastweb S.p.A.",
            22250: "Iliad Italia",
            22253: "COOP Voce",
            22254: "None",
            22256: "Mass Response GmbH",
            22288: "Wind Tre",
            22299: "Wind Tre",
            22101: "Telecom of Kosovo J.S.C.",
            22102: "IPKO",
            22106: "Dardaphone.Net LLC",
            22107: "Dukagjini Telecommunications LLC",
            24701: "Latvian Mobile Telephone",
            24702: "Tele2",
            24703: "Telekom Baltija",
            24705: "Bite Latvija",
            24707: "SIA MEGATEL",
            24708: "SIA VENTAmobile",
            24709: "Camel Mobile",
            29501: "Swisscom Schweiz AG",
            29502: "Salt Liechtenstein AG",
            29505: "Telecom Liechtenstein AG",
            29506: "Cubic Telecom AG",
            24601: "Telia Lietuva",
            24602: "UAB Bitė Lietuva",
            24603: "UAB Tele2 (Tele2 AB, Sweden)",
            24605: "Lietuvos geležinkeliai (Lithuanian Railways)",
            24606: "UAB Mediafon",
            24608: "Lietuvos radijo ir televizijos centras",
            27001: "POST Luxembourg",
            27071: "Société Nationale des Chemins de Fer Luxembourgeois",
            27077: "Tango SA",
            27099: "Orange S.A.",
            27801: "Epic",
            27821: "Mobile Communications Limited",
            27877: "Melita",
            25500: "Interdnestrcom",
            25901: "Orange Moldova",
            25902: "Moldcell",
            25903: "Moldtelecom",
            25905: "Moldtelecom",
            25915: "Interdnestrcom",
            25999: "Moldtelecom",
            21210: "Monaco Telecom",
            29701: "Telenor Montenegro",
            29702: "Crnogorski Telekom",
            29703: "m:tel Crna Gora",
            20402: "T-Mobile Netherlands B.V",
            20403: "Enreach Netherlands B.V.",
            20404: "Vodafone Libertel B.V.",
            20407: "Tata Communications MOVE B.V.",
            20408: "KPN Mobile The Netherlands B.V.",
            20409: "Lycamobile Netherlands Limited",
            20410: "KPN B.V.",
            20411: "Greenet Netwerk B.V",
            20412: "KPN Mobile The Netherlands B.V.",
            20415: "Ziggo B.V.",
            20416: "T-Mobile Netherlands B.V",
            20417: "Lebara Ltd",
            20418: "Ziggo Services B.V.",
            20420: "T-Mobile Netherlands B.V",
            20421: "ProRail B.V.",
            20423: "KORE Wireless Nederland B.V.",
            20425: "CapX B.V.",
            20427: "L-Mobi Mobile B.V.",
            20433: "Truphone B.V.",
            20462: "RGTN Wholesale Netherlands B.V.",
            20466: "Utility Connect B.V.",
            29401: "Makedonski Telekom",
            29403: "A1 Macedonia DOOEL",
            29404: "Lycamobile LLC",
            24201: "Telenor Norge AS",
            24202: "Telia Norge AS",
            24206: "ICE Norge AS",
            24208: "Telia Norge AS",
            24209: "Com4 AS",
            24214: "ICE Communication Norge AS",
            24215: "eRate Norway AS",
            24220: "Jernbaneverket AS",
            24221: "Jernbaneverket AS",
            24223: "Lyca Mobile Ltd",
            24299: "TampNet AS",
            26001: "Polkomtel Sp. z o.o.",
            26002: "T-Mobile Polska S.A.",
            26003: "Orange Polska S.A.",
            26006: "P4 Sp. z o.o.",
            26007: "Netia S.A.",
            26009: "Lycamobile Sp. z o.o.",
            26011: "Polkomtel Sp. z o.o.",
            26012: "Cyfrowy Polsat S.A.",
            26013: "Move Telecom S.A.",
            26015: "Polkomtel Sp. z o.o.",
            26016: "Polkomtel Sp. z o.o.",
            26017: "Polkomtel Sp. z o.o.",
            26025: "Claude ICT Poland Sp. z o.o.",
            26033: "Truphone Poland Sp. z o.o.",
            26034: "T-Mobile Polska S.A.",
            26035: "PKP Polskie Linie Kolejowe S.A.",
            26039: "VOXBONE SA",
            26045: "P4 Sp. z o.o.",
            26801: "Vodafone Portugal",
            26803: "NOS Comunicações",
            26804: "LycaMobile",
            26806: "MEO - Serviços de Comunicações e Multimédia, S.A.",
            26812: "Infraestruturas de Portugal, S.A.",
            26880: "MEO - Serviços de Comunicações e Multimédia, S.A.",
            22601: "Vodafone România",
            22603: "Telekom Romania",
            22605: "RCS&RDS",
            22610: "Orange România",
            22616: "Lycamobile Romania",
            25001: "Mobile TeleSystems",
            25002: "MegaFon PJSC",
            25008: "CS VainahTelecom",
            25009: "Khabarovsky Cellular Phone",
            25011: "Scartel",
            25016: "Miatel",
            25020: "Tele2",
            25021: "JSC GlobalTel",
            25022: "Vainakh Telecom",
            25023: "GTNT",
            25026: "VTB Mobile",
            25027: "Tattelecom",
            25029: "Iridium Communications",
            25032: "K-Telecom",
            25033: "Sevtelekom",
            25034: "Krymtelekom",
            25035: "EKATERINBURG-2000",
            25040: "Voentelecom",
            25045: "PJSC New Mobile Communications",
            25050: "Sberbank-Telecom",
            25059: "NetbyNet",
            25060: "KTK Telecom",
            25062: "Tinkoff Mobile",
            25096: "K-Telecom",
            25097:
              "State Unitary Enterprise of DPR Republican Telecommunications Operator",
            25598: "OOO MKS",
            25099: "OJSC Vimpel-Communications",
            29201: "San Marino Telecom",
            22001: "Telenor Serbia",
            22003: "Telekom Srbija",
            22005: "A1 Srbija d.o.o.",
            22011: "GLOBALTEL d.o.o.",
            23101: "Orange Slovensko",
            23102: "Slovak Telekom",
            23103: "SWAN Mobile, a.s.",
            23104: "Slovak Telekom",
            23105: "Orange Slovensko",
            23106: "O2 Slovakia",
            23199: "Železnice Slovenskej Republiky",
            29310: "SŽ - Infrastruktura, d.o.o.",
            29340: "A1 Slovenija",
            29341: "Telekom Slovenije",
            29364: "T-2 d.o.o.",
            29370: "Tušmobil d.o.o.",
            21401: "Vodafone Spain",
            21402: "Fibracat Telecom SLU",
            21403: "Orange Espagne S.A.U",
            21404: "Xfera Moviles SA",
            21405: "Telefónica Móviles España",
            21406: "Vodafone Spain",
            21407: "Telefónica Móviles España",
            21408: "None",
            21409: "Orange Espagne S.A.U",
            21414: "AVATEL MÓVIL, S.L.U.",
            21416: "R Cable y Telecomunicaciones Galicia S.A.",
            21417: "R Cable y Telecomunicaciones Galicia S.A.",
            21419: "Orange España Virtual Sl.",
            21422: "Best Spain Telecom",
            21424: "VODAFONE ESPAÑA, S.A.U.",
            21427: "SCN Truphone, S.L.",
            21428: "Consorcio de Telecomunicaciones Avanzadas, S.A.",
            21429: "Xfera Moviles S.A.U.",
            21434: "Aire Networks del Mediterráneo, S.L.U.",
            21451: "Administrador de Infraestructuras Ferroviarias",
            24001: "Telia Sverige AB",
            24002: "HI3G Access AB",
            24003: "Teracom AB",
            24004: "3G Infrastructure Services AB",
            24005: "Svenska UMTS-Nät AB",
            24006: "Telenor Sverige AB",
            24007: "Tele2 Sverige AB",
            24010: "Tele2 Sverige AB",
            24012: "Lycamobile Sweden Limited",
            24016: "42 Telecom AB",
            24017: "Götalandsnätet AB",
            24019: "Mundio Mobile (Sweden) Limited",
            24020: "Sierra Wireless Messaging AB",
            24021: "Trafikverket ICT",
            24024: "Net4Mobility HB",
            24027: "GlobeTouch AB",
            24038: "Voxbone mobile",
            24063: "Fink Telecom Services",
            22801: "Swisscom AG",
            22802: "Sunrise UPC",
            22803: "Salt Mobile SA",
            22806: "SBB AG",
            22808: "Sunrise Communications AG",
            22851: "relario AG",
            22853: "Sunrise UPC GmbH",
            22854: "Lycamobile AG",
            22858: "Beeone Communications SA",
            22862: "Telecom26 AG",
            22863: "Fink Telecom Services",
            22864: "Nth AG",
            28601: "Turkcell Iletisim Hizmetleri A.S.",
            28602: "Vodafone Turkey",
            28603: "Türk Telekom",
            25501: "PRJSC VF Ukraine",
            25502: "PRJSC Kyivstar",
            25503: "PRJSC Kyivstar",
            25504: "Intertelecom LLC",
            25506: "lifecell LLC",
            25507: "Trimob LLC",
            25521: "PRJSC Telesystems of Ukraine",
            23400: "BT Group",
            23401: "Mundio Mobile Limited",
            23402: "Telefónica Europe",
            23408: "BT OnePhone (UK) Ltd",
            23410: "Telefónica Europe",
            23411: "Telefónica Europe",
            23412: "Network Rail Infrastructure Ltd",
            23413: "Network Rail Infrastructure Ltd",
            23414: "Link Mobility UK Ltd",
            23415: "Vodafone",
            23416: "TalkTalk Communications Limited",
            23418: "Wireless Logic Limited",
            23419: "Teleware plc",
            23420: "Hutchison 3G UK Ltd",
            23424: "Stour Marine Limited",
            23425: "Truphone",
            23426: "Lycamobile UK Limited",
            23427: "Tata Communications Move UK Ltd",
            23428: "Marathon Telecom Limited",
            23430: "EE",
            23433: "EE",
            23434: "EE",
            23451: "UK Broadband Limited",
            23453: "Tango Networks UK Ltd",
            23454: "The Carphone Warehouse Limited",
            23472: "Hanhaa Limited",
            23476: "BT Group",
            23478: "Airwave Solutions Ltd",
            23488: "Telet Research (N.I.) Limited",
            23588: "Telet Research (N.I.) Limited",
            365010: "Digicel",
            365840: "Cable & Wireless",
            344030: "Antigua Public Utilities Authority",
            344050: "Antigua Wireless Ventures Limited",
            344920: "Cable & Wireless Caribbean Cellular (Antigua) Limited",
            36301: "Servicio di Telecomunicacion di Aruba",
            36302: "Digicel Aruba",
            36439: "The Bahamas Telecommunications Company Ltd (BaTelCo)",
            36449: "Cable Bahamas Ltd",
            342600: "LIME (formerly known as Cable & Wireless)",
            342750: "Digicel (Barbados) Limited",
            31059: "None",
            338050: "Digicel (Turks & Caicos) Limited",
            35000: "Bermuda Digital Communications Ltd.",
            348170: "Cable & Wireless",
            348570: "Caribbean Cellular Telephone",
            348770: "Digicel (BVI) Limited",
            302130: "Xplore Inc.",
            302131: "Xplore Inc.",
            302220: "Telus Mobility",
            302270: "Bragg Communications",
            302300: "Ecotel inc.",
            302310: "Ecotel inc.",
            302320: "Rogers Communications",
            302340: "Execulink",
            302370: "Fido Solutions (Rogers Wireless)",
            302380: "Keewaytinook Okimakanak Mobile",
            302420: "A.B.C. Allen Business Communications Ltd.",
            302480: "SSi Connexions",
            302490: "Shaw Communications",
            302500: "Videotron",
            302510: "Videotron",
            302520: "Videotron",
            302530: "Keewaytinook Okimakanak Mobile",
            302590: "Quadro Communications Co-op",
            302610: "Bell Mobility",
            302620: "ICE Wireless",
            302650: "Thunder Bay Telephone",
            302660: "Bell MTS",
            302680: "SaskTel Mobility",
            302690: "Bell Mobility",
            302710: "None",
            302720: "Rogers Communications",
            302760: "Telus Mobility",
            302770: "TNW Wireless Inc.",
            302780: "SaskTel Mobility",
            302790: "NetSet Communications",
            302880: "Shared Telus, Bell, and SaskTel",
            302940: "Wightman Telecom",
            33805: "Digicel",
            346001: "WestTel Ltd.",
            346140: "Cable & Wireless (Cayman Islands) Limited",
            36801: "Empresa de Telecomunicaciones de Cuba, SA",
            366020: "Digicel Group Limited",
            366110: "Cable &  Wireless",
            37001: "Altice Group",
            37002: "Compañía Dominicana de Teléfonos",
            37003: "Altice Group",
            37004: "Trilogy Dominicana, S.A.",
            37005: "WIND Telecom, S.A",
            34001: "Orange Caraïbe Mobiles",
            34002: "Outremer Telecom",
            34003: "UTS Caraïbe",
            34008: "Dauphin Telecom",
            34020: "DIGICEL Antilles Française Guyane",
            352030: "Digicel Grenada Ltd.",
            352110: "Cable & Wireless Grenada Ltd.",
            310032: "IT&E Overseas, Inc",
            310140: "Teleguam Holdings, LLC",
            310370: "NTT DoCoMo Pacific",
            310400: "IT&E Overseas, Inc",
            310480: "IT&E Overseas, Inc",
            311120: "IT&E Overseas, Inc",
            311250: "IT&E Overseas, Inc",
            37202: "Unigestion Holding S.A.",
            37203: "NATCOM S.A.",
            338110: "Cable & Wireless Communications",
            338180: "Cable & Wireless Communications",
            334020: "América Móvil",
            334030: "Telefónica",
            334050: "AT&T Mexico",
            334090: "AT&T Mexico",
            334130: "ALESTRA SERVICIOS MÓVILES, S.A. DE C.V.",
            334140: "Altán Redes S.A.P.I. de C.V.",
            334150: "Ultravisión, S.A. de C.V.",
            334180: "FREEDOMPOP MÉXICO, S.A. DE C.V.",
            334190: "VIASAT TECNOLOGÍA, S.A. DE C.V.",
            354860: "Cable & Wireless",
            36251: "Telcell N.V.",
            36254: "East Caribbean Cellular",
            36260: "Liberty Latin America",
            36268: "Curaçao Telecom N.V.",
            36269: "Curaçao Telecom N.V.",
            36276: "Antiliano Por N.V.",
            36278: "Telefonia Bonairiano N.V.",
            36291: "Liberty Latin America",
            36294: "Bòbò Frus N.V.",
            310110: "PTI Pacifica Inc.",
            310260: "T-Mobile US",
            313790: "Liberty Cablevision of Puerto Rico LLC",
            330000: "PR Wireless",
            330110: "América Móvil",
            330120: "PR Wireless",
            356050: "Wireless Ventures (St Kitts-Nevis) Limited",
            356070: "UTS",
            356110: "Cable & Wireless St. Kitts & Nevis Ltd",
            358110: "Cable &  Wireless",
            30801: "St. Pierre-et-Miquelon Télécom",
            30802: "GLOBALTEL",
            360050: "Digicel (St. Vincent and the Grenadines) Limited",
            360110: "Cable & Wireless (St. Vincent & the Grenadines) Ltd",
            37412: "TSTT",
            374130: "Digicel (Trinidad & Tobago) Limited",
            376350: "Cable & Wireless West Indies Ltd (Turks & Caicos)",
            310004: "Verizon Wireless",
            310006: "Verizon Wireless",
            310012: "Verizon Wireless",
            310020: "Union Telephone Company",
            310030: "AT&T Mobility",
            310034: "Airpeak",
            310050: "Alaska Communications",
            310053: "T-Mobile US",
            310054: "Alltel US",
            310066: "U.S. Cellular",
            310070: "AT&T Mobility",
            310080: "AT&T Mobility",
            310090: "AT&T Mobility",
            310100: "New Mexico RSA 4 East LP",
            310120: "T-Mobile US",
            310130: "Carolina West Wireless",
            310150: "AT&T Mobility",
            310160: "T-Mobile US",
            310170: "AT&T Mobility",
            310180: "West Central Wireless",
            310190: "Alaska Communications",
            310320: "Smith Bagley, Inc.",
            310340: "Limitless Mobile, LLC",
            310360: "Cellular Network Partnership",
            310390: "TX-11 Acquisition, LLC",
            310410: "AT&T Mobility",
            310430: "GCI Communications Corp.",
            310440: "Numerex",
            310450: "Viaero Wireless",
            310460: "NewCore Wireless LLC",
            310490: "T-Mobile",
            310500: "Public Service Cellular Inc.",
            310540: "Hilliary Communications",
            310570: "Broadpoint, LLC",
            310580: "Inland Cellular Telephone Company",
            310600: "NewCell Inc.",
            310640: "Numerex",
            310650: "Jasper Technologies",
            310680: "AT&T Mobility",
            310690: "Limitless Mobile, LLC",
            310710: "Arctic Slope Telephone Association Cooperative",
            310740: "Viaero Wireless",
            310840: "Telecom North America Mobile, Inc.",
            310850: "Aeris Communications, Inc.",
            310860: "TX RSA 15B2, LP",
            310880: "Advantage Cellular Systems, Inc.",
            310900: "Cable & Communications Corporation",
            310920: "James Valley Wireless, LLC",
            310930: "Copper Valley Wireless",
            310950: "AT&T Mobility",
            310960: "UBET Wireless",
            310970: "Globalstar",
            310990: "Evolve Cellular Inc.",
            311000: "Mid-Tex Cellular Ltd.",
            311020: "Missouri RSA 5 Partnership",
            311030: "Americell PA 3 Partnership",
            311040: "Commnet Wireless",
            311050: "Thumb Cellular LP",
            311060: "Space Data Corporation",
            311070: "AT&T Mobility",
            311080: "Pine Telephone Company",
            311090: "AT&T Mobility",
            311100: "Nex-Tech Wireless",
            311140: "Cross Telephone Company",
            311150: "Wilkes Cellular",
            311170: "Tampnet",
            311210: "Telnyx LLC",
            311220: "U.S. Cellular",
            311230: "Cellular South Inc.",
            311240: "Cordova Wireless",
            311320: "Commnet Wireless",
            311330: "Bug Tussel Wireless LLC",
            311340: "Illinois Valley Cellular",
            311350: "Sagebrush Cellular, Inc.",
            311370: "General Communication Inc.",
            311380: "New Dimension Wireless Ltd.",
            311410: "Iowa RSA No. 2 LP",
            311420: "Northwest Missouri Cellular LP",
            311450: "Panhandle Telecommunication Systems Inc.",
            311470: "Vitelcom Cellular Inc.",
            311480: "Verizon Wireless",
            311490: "T-Mobile US",
            311530: "NewCore Wireless LLC",
            311550: "Commnet Wireless LLC",
            311560: "OTZ Communications, Inc.",
            311580: "U.S. Cellular",
            311600: "Limitless Mobile, LLC",
            311640: "Standing Rock Telecommunications",
            311650: "United Wireless",
            311660: "Metro by T-Mobile",
            311670: "Pine Belt Cellular Inc.",
            311690: "TeleBEEPER of New Mexico",
            311740: "Telalaska Cellular",
            311780: "American Samoa Telecommunications",
            311800: "Verizon Wireless",
            311810: "Verizon Wireless",
            311830: "Thumb Cellular LP",
            311840: "Nsight",
            311850: "Nsight",
            311860: "Uintah Basin Electronic Telecommunications",
            311882: "T-Mobile US",
            311900: "GigSky",
            311950: "Enhanced Telecommmunications Corp.",
            311970: "Big River Broadband, LLC",
            311990: "VTel Wireless",
            312020: "Infrastructure Networks, LLC",
            312030: "Cross Wireless",
            312040: "Custer Telephone Co-op (CTCI)",
            312080: "South Georgia Regional Information Technology Authority",
            312120: "East Kentucky Network, LLC",
            312130: "East Kentucky Network, LLC",
            312150: "Northwest Missouri Cellular LP",
            312160: "RSA1 Limited Partnership",
            312170: "Iowa RSA No. 2 LP",
            312180: "Limitless Mobile LLC",
            312210: "Aspenta International, Inc.",
            312220: "Chariton Valley Communications Corporation, Inc.",
            312250: "T-Mobile US",
            312270: "Cellular Network Partnership",
            312280: "Cellular Network Partnership",
            312300: "Telecom North America Mobile, Inc.",
            312310: "Clear Stream Communications, LLC",
            312320: "RTC Communications LLC",
            312330: "Nemont Communications, Inc.",
            312350: "Triangle Communication System Inc.",
            312370: "Commnet Wireless",
            312380: "Copper Valley Wireless",
            312390: "FTC Communications LLC",
            312400: "Mid-Rivers Telephone Cooperative",
            312420: "Nex-Tech Wireless",
            312430: "Silver Star Communications",
            312460: "Ketchikan Public Utilities (KPU)",
            312470: "Carolina West Wireless",
            312530: "T-Mobile US",
            312590: "Northern Michigan University",
            312620: "GlobeTouch Inc.",
            312670: "AT&T Mobility",
            312690: "TGS, LLC",
            312700: "Wireless Partners, LLC",
            312710: "Great North Woods Wireless LLC",
            312720: "Southern Communications Services",
            312780: "Redzone Wireless",
            312810: "Bristol Bay Telephone Cooperative",
            312830: "Kings County Office of Education",
            312870: "GigSky Mobile, LLC",
            312900: "Flat West Wireless, LLC",
            312940: "Webformix",
            312950: "Custer Telephone Co-op (CTCI)",
            313000: "Tennessee Wireless",
            313020: "Cambridge Telephone Company Inc.",
            313040: "Nucla-Naturita Telephone Company",
            313060: "Country Wireless",
            313080: "Speedwavz LLP",
            313090: "Vivint Wireless, Inc.",
            313100: "AT&T FirstNet",
            313200: "Mercury Network Corporation",
            313260: "Expeto Wireless Inc.",
            313300: "Cambio WiFi of Delmarva, LLC",
            313340: "Dish Wireless",
            313460: "Mobi, Inc.",
            313510: "Puerto Rico Telephone Company",
            313520: "Florida Broadband, Inc.",
            313550: "Mile High Networks LLC",
            313560: "Transit Wireless LLC",
            313690: "Shenandoah Cable Television, LLC",
            313760: "Hologram, Inc.",
            313810: "Watch Communications",
            313850: "Softcom Internet Communications, Inc",
            313860: "AMG Technology Investment Group",
            313870: "ElektraFi LLC",
            313890: "Tulare County Office of Education",
            313930: "Standing Rock Telecom",
            41201: "Afghan Wireless Communication Company",
            41220: "Telecom Development Company Afghanistan Ltd.",
            41240: "MTN Group Afghanistan",
            41250: "Etisalat Afghanistan",
            41255: "WASEL Afghanistan",
            41280: "Afghan Telecom",
            41288: "Afghan Telecom",
            40001: "None",
            40002: "None",
            40003: "CATEL",
            40004: "Azerfon",
            40006: "Nakhtel LLC",
            42601: "Bahrain Telecommunications Company",
            42602: "Zain Bahrain",
            42604: "Stc Bahrain",
            42605: "Bahrain Telecommunications Company",
            47001: "Grameenphone Ltd.",
            47002: "Axiata Bangladesh Ltd.",
            47003: "Banglalink Digital Communications Ltd.",
            47004: "Teletalk Bangladesh Limited",
            47007: "Bharti Airtel Bangladesh Ltd.",
            47010: "Banglalion Communications Ltd.",
            40211: "Bhutan Telecom Limited",
            40277: "Tashi InfoComm Limited",
            45601: "CamGSM / The Royal Group",
            45602: "Smart Axiata Co. Ltd",
            45605: "Smart Axiata Co. Ltd",
            45606: "Smart Axiata Co. Ltd",
            45608: "Viettel",
            45609: "Viettel",
            45611: "SEATEL Cambodia",
            45618: "The Royal Group",
            46000: "中国移动",
            46001: "中国联通",
            46003: "中国电信",
            46009: "中国联通",
            46011: "中国电信",
            46015: "中国广电",
            46020: "中国铁通",
            45400: "CSL Limited",
            45401: "CITIC Telecom 1616",
            45402: "CSL Limited",
            45403: "Hutchison Telecom",
            45406: "SmarTone Mobile Communications Limited",
            45407: "China Unicom (Hong Kong) Limited",
            45408: "Truphone Limited",
            45411: "China-Hong Kong Telecom",
            45412: "China Mobile Hong Kong Company Limited",
            45413: "China Mobile Hong Kong Company Limited",
            45416: "PCCW",
            45419: "PCCW-HKT",
            45420: "PCCW-HKT",
            45422: "263 Mobile Communications (HongKong) Limited",
            45424: "Multibyte Info Technology Ltd",
            45429: "PCCW-HKT",
            45431: "China Telecom Global Limited",
            45432: "Hong Kong Broadband Network Ltd",
            45435: "Webbing Hong Kong Ltd",
            40401: "Haryana",
            40402: "Punjab",
            40403: "Himachal Pradesh",
            40405: "Gujarat",
            40407: "Andhra Pradesh and Telangana",
            40409: "Assam",
            40410: "Delhi & NCR",
            40411: "Delhi & NCR",
            40414: "Punjab",
            40415: "Uttar Pradesh (East)",
            40416: "North East",
            40418: "Himachal Pradesh",
            40420: "Mumbai",
            40422: "Maharashtra & Goa",
            40430: "Kolkata",
            40431: "Kolkata",
            40434: "Haryana",
            40436: "Bihar & Jharkhand",
            40438: "Assam",
            40440: "Chennai",
            40443: "Tamil Nadu",
            40445: "Karnataka",
            40446: "Kerala",
            40449: "Andhra Pradesh and Telangana",
            40450: "North East",
            40451: "Himachal Pradesh",
            40452: "Odisha",
            40453: "Punjab",
            40454: "Uttar Pradesh (West)",
            40455: "Uttar Pradesh (East)",
            40456: "Uttar Pradesh (West)",
            40457: "Gujarat",
            40458: "Madhya Pradesh & Chhattisgarh",
            40459: "Rajasthan",
            40460: "Rajasthan",
            40462: "Jammu & Kashmir",
            40464: "Chennai",
            40466: "Maharashtra & Goa",
            40467: "Madhya Pradesh & Chhattisgarh",
            40468: "Delhi & NCR",
            40469: "Mumbai",
            40470: "Rajasthan",
            40471: "Karnataka (Bangalore)",
            40472: "Kerala",
            40473: "Andhra Pradesh and Telangana",
            40474: "West Bengal",
            40475: "Bihar",
            40476: "Odisha",
            40477: "North East",
            40478: "Madhya Pradesh & Chattishgarh",
            40479: "Andaman Nicobar",
            40480: "Tamil Nadu",
            40481: "Kolkata",
            40482: "Himachal Pradesh",
            40483: "Kolkata",
            40485: "West Bengal",
            40486: "Karnataka",
            40490: "Maharashtra",
            40492: "Mumbai",
            40493: "Madhya Pradesh",
            40494: "Tamil Nadu",
            40495: "Kerala",
            40496: "Haryana",
            40497: "Uttar Pradesh (West)",
            40498: "Gujarat",
            40503: "Bihar",
            40504: "Chennai",
            40505: "Delhi & NCR",
            40506: "Gujarat",
            40507: "Haryana",
            40508: "Himachal Pradesh",
            40509: "Jammu & Kashmir",
            40510: "Karnataka",
            40511: "Kerala",
            40512: "Kolkata",
            40513: "Maharashtra & Goa",
            40514: "Madhya Pradesh",
            40515: "Mumbai",
            40517: "Odisha",
            40518: "Punjab",
            40519: "Rajasthan",
            40520: "Tamil Nadu",
            40521: "Uttar Pradesh (East)",
            40522: "Uttar Pradesh (West)",
            40523: "West Bengal",
            40551: "West Bengal",
            40552: "Bihar & Jharkhand",
            40553: "Odisha",
            40554: "Uttar Pradesh (East)",
            40555: "Jammu & Kashmir",
            40556: "Assam",
            40567: "West Bengal",
            40570: "Bihar & Jharkhand",
            405750: "Jammu & Kashmir",
            405751: "Assam",
            405753: "Odisha",
            405755: "North East",
            405840: "West Bengal",
            405854: "Andhra Pradesh",
            405855: "Assam",
            405856: "Bihar",
            405857: "Gujarat",
            405858: "Haryana",
            405859: "Himachal Pradesh",
            405860: "Jammu & Kashmir",
            405861: "Karnataka",
            405862: "Kerala",
            405863: "Madhya Pradesh",
            405864: "Maharashtra",
            405865: "North East",
            405866: "Odisha",
            405867: "Punjab",
            405868: "Rajasthan",
            405869: "Tamil Nadu (incl. Chennai)",
            405870: "Uttar Pradesh (West)",
            405871: "Uttar Pradesh (East)",
            405872: "Delhi",
            405873: "Kolkata",
            405874: "Mumbai",
            405908: "Andhra Pradesh and Telangana",
            43201: "Kish Cell Pars",
            43202: "Negin Ertebatat Ava",
            43203: "Parsian Hamrah Lotus",
            43206: "Ertebatat-e Arian Tel Co.",
            43207: "Hooshmand Amin Mobile",
            43208: "Shatel Group",
            43210: "Samantel Mobile",
            43211: "Mobile Communications Company of Iran (MCI)",
            43212: "Dadeh Dostar asr Novin PJSC",
            43214: "Kish Free Zone Organization",
            43220: "Social Security Investment Co.",
            43221: "Social Security Investment Co.",
            43232: "Telecommunication Company of Iran (TCI)",
            43235: "MTN Irancell Telecommunications Services Company",
            43240: "Ertebatat Mobinnet",
            43244: "Ertebatat Mobinnet",
            43245: "Farabord Dadeh Haye Iranian Co.",
            43250: "Shatel Group",
            43270: "Telecommunication Company of Iran (TCI)",
            43271: "ERTEBATAT KOOHE NOOR",
            43290: "IRAPHONE GHESHM of Iran",
            43293: "Farzanegan Pars",
            43299: "TCI of Iran and Rightel",
            41800: "Asia Cell Telecommunications Company",
            41805: "Asia Cell Telecommunications Company",
            41808: "None",
            41820: "Zain Iraq",
            41830: "Zain Iraq",
            41840: "Telecom Ltd",
            41845: "Mobitel Co. Ltd.",
            41862: "Itisaluna Wireless CO.",
            41892: "Omnnea Wireless",
            42501: "Partner Communications Company Ltd.",
            42502: "Cellcom Israel Ltd.",
            42503: "Pelephone Communications Ltd.",
            42505: "Palestine Cellular Communications, Ltd.",
            42506: "Ooredoo Palestine",
            42507: "Hot Mobile Ltd.",
            42508: "Golan Telecom Ltd.",
            42509: "Marathon 018 Xphone Ltd.",
            42510: "Partner Communications Company Ltd.",
            42512: "Widely Mobile",
            42516: "Rami Levy Communications Ltd.",
            42518: "Cellact Communications Ltd.",
            42519: "019 Communication Services Ltd. / TELZAR",
            42524: "Partner Communications Company Ltd.",
            42525: "Israel Ministry of Defense",
            42526: "LB Annatel Ltd.",
            44000: "SoftBank Corp.",
            44001: "KDDI Corporation",
            44003: "Internet Initiative Japan Inc.",
            44005: "Wireless City Planning Inc.",
            44009: "Marubeni Network Solutions Inc.",
            44010: "NTT DoCoMo, Inc.",
            44011: "Rakuten Mobile Network, Inc.",
            44020: "SoftBank Corp.",
            44021: "SoftBank Corp.",
            44050: "KDDI Corporation",
            44051: "KDDI Corporation",
            44052: "KDDI Corporation",
            44053: "KDDI Corporation",
            44100: "Wireless City Planning Inc.",
            44101: "SoftBank Corp.",
            441200: "Soracom Inc.",
            441205: "Katch Network Inc.",
            41601: "Jordan Mobile Telephone Services",
            41603: "Umniah Mobile Company",
            41677:
              "Petra Jordanian Mobile Telecommunications Company (MobileCom)",
            40101: "KaR-Tel LLP",
            40102: "Kcell JSC",
            40107: "Altel",
            40108: "None",
            40177: "MTS",
            46705: "Cheo Technology Jv Company",
            46706: "Korea Posts and Telecommunications Corporation",
            45001: "Globalstar Asia Pacific",
            45002: "KT",
            45004: "KT",
            45005: "SK Telecom",
            45006: "LG Telecom",
            45008: "KT",
            45011: "Korea Cable Telecom",
            45012: "SK Telecom",
            41902: "Zain Kuwait",
            41903: "National Mobile Telecommunications",
            41904: "Saudi Telecom Company",
            43701: "Sky Mobile LLC",
            43705: "Alfa Telecom CJSC",
            43709: "NurTelecom LLC",
            43710: "Saima Telecom",
            45701: "Lao Telecom",
            45702: "Enterprise of Telecommunications Lao",
            45703: "Star Telecom Co., Ltd",
            45707: "Best Telecom Co., Ltd",
            45708: "TPLUS Digital Sole Co., Ltd",
            41501: "MIC 1",
            41503: "MIC 2",
            45500: "Smartone – Comunicações Móveis, S.A.",
            45501: "Companhia de Telecomunicações de Macau, S.A.R.L.",
            45504: "Companhia de Telecomunicações de Macau, S.A.R.L.",
            45505: "Hutchison Telephone (Macau), Limitada",
            45506: "Smartone – Comunicações Móveis, S.A.",
            45507: "China Telecom (Macau) Limitada",
            47201: "Dhivehi Raajjeyge Gulhun",
            47202: "Ooredoo Maldives",
            42888: "Unitel LLC",
            42891: "Skytel LLC",
            42898: "G-Mobile LLC",
            42899: "Mobicom Corporation",
            41401: "Myanmar Posts and Telecommunications",
            41403: "Myanmar Economic Corporation",
            41405: "Ooredoo Myanmar",
            41406: "Telenor Myanmar",
            41409: "Myanmar National Tele & Communication Co., Ltd",
            41420: "Amara Communication Co., Ltd",
            41421: "Amara Communication Co., Ltd",
            42901: "Nepal Telecom (NDCL)",
            42902: "Ncell Pvt. Ltd.",
            42903: "United Telecom Limited",
            42904: "Smart Telecom Pvt. Ltd. (STPL)",
            42202: "Oman Telecommunications Company",
            42203: "Omani Qatari Telecommunications Company SAOC",
            42206: "Oman Future Telecommunications Company SAOC",
            41001: "Mobilink-PMCL",
            41002: "PTCL",
            41003: "Pakistan Telecommunication Mobile Ltd",
            41004: "China Mobile",
            41005: "SCO Mobile Ltd",
            41006: "Telenor Pakistan",
            41007: "WaridTel",
            41008: "SCO Mobile Ltd",
            42701: "Ooredoo",
            42702: "Vodafone Qatar",
            42705: "Ministry of Interior",
            42706: "Ministry of Interior",
            42001: "Saudi Telecom Company",
            42003: "Etihad Etisalat Company",
            42004: "Zain Saudi Arabia",
            42005: "Virgin Mobile Saudi Arabia",
            42006: "Lebara Mobile",
            42021: "Saudi Railways GSM",
            41301: "Mobitel (Pvt) Ltd",
            41302: "Dialog Axiata PLC",
            41304: "Lanka Bell Ltd",
            41305: "Bharti Airtel Lanka (Pvt) Ltd",
            41308: "Hutchison Telecommunications Lanka (Pvt) Ltd",
            41311: "Dialog Broadband Networks (Pvt) Ltd",
            41312: "Sri Lanka Telecom PLC",
            41701: "Syriatel Mobile Telecom",
            41702: "MTN Syria",
            46601: "Far EasTone Telecommunications Co Ltd",
            46605: "Asia Pacific Telecom",
            46609: "Vmax Telecom",
            46610: "Global Mobile Corp.",
            46612: "Ambit Microsystems",
            46689: "Taiwan Star Telecom",
            46692: "Chunghwa Telecom",
            46697: "Taiwan Mobile Co. Ltd",
            43601: "JV Somoncom",
            43602: "Indigo Tajikistan",
            43603: "TT Mobile",
            43604: "Babilon-Mobile",
            43605: "Tacom",
            43610: "Babilon-T",
            43802: "Altyn Asyr",
            43803: "AŞTU",
            42402: "Emirates Telecom Corp",
            42403: "Emirates Integrated Telecommunications Company",
            43403: "Uzbektelekom",
            43404: "Unitel LLC",
            43405: "Coscom",
            43406: "RUBICON WIRELESS COMMUNICATION",
            43407: "Universal Mobile Systems (UMS)",
            43408: "Uzbektelekom",
            43409: "OOO «Super iMAX»",
            45201: "Vietnam Mobile Telecom Services Company",
            45202: "Vietnam Telecom Services Company",
            45204: "Viettel Telecom",
            45205: "Hanoi Telecom",
            45207: "GTEL Mobile JSC",
            45208: "Indochina Telecom",
            45209: "MOBICAST JSC",
            42101: "SabaFon",
            42102: "Yemen Oman United Telecom",
            42103: "Yemen Mobile",
            42104: "HiTS-UNITEL",
            42110: "PTC/Yemen-Telecom",
            42111: "Yemen Mobile",
            54411: "Bluesky",
            50501: "Telstra Corporation Limited",
            50502: "Singtel Optus Pty Ltd",
            50503: "Vodafone Hutchison Australia Pty Ltd",
            50504: "Department of Defence",
            50510: "Norfolk Telecom",
            50513: "Railcorp, Transport for NSW",
            50514: "TPG Telecom",
            50516: "Victorian Rail Track",
            50517: "Optus",
            50519: "Lycamobile Pty Ltd",
            50523: "Challenge Networks Pty Ltd",
            50538: "Truphone Pty Ltd",
            50550: "Pivotel Group Pty Ltd",
            50552: "OptiTel Australia",
            50562: "National Broadband Network Co.",
            50568: "National Broadband Network Co.",
            50571: "Telstra Corporation Limited",
            50572: "Telstra Corporation Limited",
            50588: "Pivotel Group Pty Ltd",
            50590: "Singtel Optus Proprietary Ltd",
            52802: "Progresif Cellular Sdn Bhd",
            52811: "Data Stream Technology Sdn Bhd",
            54801: "Telecom Cook Islands",
            51401: "PT Telekomunikasi Indonesia International",
            51402: "Timor Telecom",
            51403: "Viettel Timor-Leste",
            54201: "Vodafone Fiji",
            54202: "Digicel Fiji",
            54203: "Telecom Fiji Ltd",
            54705: "VITI",
            54715: "Pacific Mobile Telecom",
            54720: "Onati S.A.S.",
            51000: "PT Pasifik Satelit Nusantara",
            51001: "PT Indosat Tbk",
            51009: "PT Smartfren Telecom",
            51010: "PT Telekomunikasi Selular",
            51011: "PT XL Axiata Tbk",
            51021: "PT Indosat Tbk",
            51028: "PT Mobile-8 Telecom",
            51089: "PT Hutchison 3 Indonesia",
            54501: "Amalgamated Telecom Holdings Kiribati Limited",
            54509: "Amalgamated Telecom Holdings Kiribati Limited",
            50210: "Celcom, DiGi, Maxis, Tune Talk, U Mobile, Unifi, XOX, Yes",
            50211: "Telekom Malaysia Bhd",
            50212: "Maxis Communications Berhad",
            50213: "Celcom Axiata Berhad",
            502150: "Tune Talk Sdn Bhd",
            502152: "YTL Communications Sdn Bhd",
            502153: "Webe Digital Sdn Bhd",
            502156: "Altel Communications Sdn Bhd",
            502157: "Telekomunikasi Indonesia International (M) Sdn Bhd",
            50216: "DiGi Telecommunications",
            50217: "Maxis Communications Berhad",
            50218: "U Mobile Sdn Bhd",
            50219: "Celcom Axiata Berhad",
            55101:
              "Marshall Islands National Telecommunications Authority (MINTA)",
            55001: "FSMTC",
            53602: "Digicel (Nauru) Corporation",
            54601: "OPT New Caledonia",
            53001: "Vodafone New Zealand",
            53005: "Spark New Zealand",
            53024: "2degrees",
            55501: "Telecom Niue",
            55201: "Palau National Communications Corp.",
            55202: "Palau Equipment Company Inc.",
            55299: "Palau Mobile Communications Inc.",
            53701: "Bemobile Limited",
            53702: "Telikom PNG Ltd.",
            53703: "Digicel PNG",
            51502: "Globe Telecom",
            51503: "Smart Communications",
            51505: "Digital Telecommunications Philippines",
            51524: "ABS-CBN Convergence with Globe Telecom",
            51566: "Dito Telecommunity Corp.",
            51588: "Next Mobile Inc.",
            54901: "Digicel Pacific Ltd.",
            54927: "Vodafone Samoa Ltd.",
            52501: "Singapore Telecom",
            52503: "M1 Limited",
            52505: "StarHub Mobile",
            52509: "Liberty Wireless Pte Ltd",
            52510: "SIMBA Telecom Pte Ltd",
            52512: "GRID Communications Pte Ltd.",
            54001: "Our Telekom",
            54002: "BMobile (SI) Ltd",
            52000: "National Telecom Public Company Limited",
            52001: "Advanced Info Service",
            52002: "National Telecom Public Company Limited",
            52003: "Advanced Wireless Network Company Ltd.",
            52004: "True Move H Universal Communication Company Ltd.",
            52005: "DTAC TriNet Company Ltd.",
            52009: "Royal Thai Police",
            52015: "National Telecom Public Company Limited",
            52017: "National Telecom Public Company Limited",
            52018: "Total Access Communications Public Company Ltd.",
            52047: "National Telecom Public Company Limited",
            52099: "True Corporation",
            55401: "Teletok",
            53901: "Tonga Communications Corporation",
            53943: "Shoreline Communication",
            53988: "Digicel (Tonga) Limited",
            55301: "Tuvalu Telecom",
            54100: "ACeS International (AIL)",
            54101: "Telecom Vanuatu Ltd",
            54105: "Digicel Vanuatu Ltd",
            54107: "WanTok Vanuatu Ltd",
            54301:
              "Service des Postes et Télécommunications des Îles Wallis et Futuna (SPT)",
            60301: "Algérie Télécom",
            60302: "Optimum Telecom Algérie Spa",
            60303: "Wataniya Telecom Algérie",
            60307: "Algérie Télécom",
            60309: "Algérie Télécom",
            63102: "UNITEL S.a.r.l.",
            63104: "MOVICEL Telecommunications S.A.",
            63105: "Africell",
            61601: "Benin Telecoms Mobile",
            61602: "Telecel Benin",
            61603: "Spacetel Benin",
            61604: "Bell Benin Communications",
            65201: "Mascom Wireless (Pty) Limited",
            65202: "Orange (Botswana) Pty Limited",
            65204: "Botswana Telecommunications Corporation",
            61301: "Onatel",
            61302: "Orange Burkina Faso",
            61303: "Telecel Faso SA",
            64201: "Econet Wireless Burundi PLC",
            64203: "Onatel",
            64208: "Viettel Burundi",
            64282: "Econet Wireless Burundi PLC",
            62401: "Mobile Telephone Network Cameroon Ltd",
            62402: "Orange Cameroun S.A.",
            62403: "Camtel",
            62404: "Viettel Cameroun",
            62501: "CVMóvel, S.A.",
            62502: "UNITEL T+ TELECOMUNICACÕES, S.A.",
            62301: "Atlantique Telecom Centrafrique SA",
            62302: "Telecel Centrafrique",
            62303: "Orange RCA",
            62304: "Azur RCA",
            62201: "Bharti Airtel SA",
            62202: "SotelTchad",
            62203: "Millicom",
            62207: "SotelTchad",
            65401: "Comores Telecom",
            65402: "Telecom Malagasy (Telma)",
            62901: "Celtel Congo",
            62907: "Warid Telecom",
            62910: "MTN CONGO S.A",
            63001: "Vodacom Congo RDC sprl",
            63002: "Airtel sprl",
            63005: "Supercell SPRL",
            63086: "Orange RDC sarl",
            63089: "Orange RDC sarl",
            63090: "Africell RDC sprl",
            63801: "Djibouti Telecom SA",
            60201: "Orange Egypt",
            60202: "Vodafone Egypt",
            60203: "Etisalat Egypt",
            60204: "Telecom Egypt",
            62701: "GETESA",
            62703: "Green Com S.A.",
            65701: "Eritrea Telecommunications Services Corporation",
            65302: "Eswatini Mobile Limited",
            65310: "MTN Eswatini Limited",
            63601: "Ethio Telecom",
            64700: "Orange La Réunion",
            64701: "BJT Partners",
            64702: "Telco OI",
            64703: "Telco OI",
            64710: "Société Réunionnaise du Radiotéléphone",
            62801: "Gabon Telecom S.A.",
            62802: "Gabon Telecom S.A.",
            62803: "Airtel Gabon S.A.",
            60701: "Gamcel",
            60702: "Africell",
            60703: "Comium",
            60704: "QCell Gambia",
            60706: "NETPAGE",
            62001: "MTN Group",
            62002: "Vodafone Group",
            62003: "Millicom Ghana",
            62004: "Kasapa / Hutchison Telecom",
            62006: "Airtel",
            62007: "Globacom Group",
            62010: "Blu Telecommunications",
            62014: "BusyInternet",
            62015: "Lebara",
            62016: "Telesol",
            61101: "Orange S.A.",
            61102: "Sotelgui Lagui",
            61104: "Areeba Guinea",
            61105: "Cellcom",
            63201: "Guinétel S.A.",
            63202: "Spacetel Guiné-Bissau S.A.",
            63203: "None",
            63207: "Guinétel S.A.",
            61202: "Atlantique Cellulaire",
            61203: "Orange",
            61204: "Comium Ivory Coast Inc",
            61205: "Loteny Telecom",
            61206: "Oricel",
            61207: "Aircomm",
            61218: "YooMee",
            63902: "Safaricom Limited",
            63903: "Bharti Airtel",
            63907: "Telkom Kenya",
            63910: "Jamii Telecommunications Limited",
            65101: "Vodacom Lesotho (Pty) Ltd",
            65102: "Econet Ezi-cel",
            61801: "Lonestar Communications Corporation",
            61804: "Novafone Inc.",
            61807: "Orange Liberia",
            61820: "Liberia Telecommunications Corporation",
            60600: "Libyana",
            60601: "Al-Madar Al-Jadeed",
            60602: "Al-Jeel Al-Jadeed",
            60603: "Libya Telecom & Technology (LTT)",
            60606: "Hatef Libya",
            64601: "Bharti Airtel",
            64602: "Orange Madagascar S.A.",
            64604: "Telma Mobile S.A.",
            64605: "Gulfsat Madagascar S.A.",
            65001: "Telecom Network Malawi",
            65002: "Access Communications Ltd",
            65003: "Malawi Telecommunications Limited",
            65010: "Airtel Malawi Limited",
            61001: "Malitel SA",
            61002: "Orange Mali SA",
            61003: "Alpha Telecommunication Mali S.A.",
            60901: "Mattel",
            60902: "Chinguitel",
            60910: "Mauritel Mobiles",
            61701: "Cellplus Mobile Communications Ltd.",
            61702: "Mahanagar Telephone Mauritius Limited (MTML)",
            61703: "Mahanagar Telephone Mauritius Limited (MTML)",
            61710: "Emtel Ltd.",
            60400: "Médi Télécom",
            60401: "Ittissalat Al-Maghrib (Maroc Telecom)",
            60402: "Wana Corporate",
            60405: "Wana Corporate",
            64301: "Mocambique Celular S.A.",
            64303: "Movitel, SA",
            64304: "Vodacom Mozambique, S.A.",
            64901: "MTC Namibia",
            64902: "Telecom Namibia",
            64903: "Telecom Namibia",
            64904: "Paratus Telecommunications (Pty)",
            64906: "MTN Namibia",
            61401: "La Société Sahélienne de Télécommunications (SahelCom)",
            61402: "Bharti Airtel Limited",
            61403: "Atlantique Telecom (subsidiary of Etisalat)",
            61404: "Orange Niger",
            62120: "Bharti Airtel Limited",
            62122: "InterC Network Ltd.",
            62124: "Spectranet",
            62126: "Swift",
            62127: "Smile Communications Nigeria",
            62130: "MTN Nigeria Communications Limited",
            62140: "Nigerian Mobile Telecommunications Limited",
            62150: "Globacom Ltd",
            62160: "Emerging Markets Telecommunication Services Ltd.",
            63510: "MTN Rwandacell SARL",
            63513: "Airtel RWANDA",
            63517: "Olleh Rwanda Networks",
            65801: "Sure South Atlantic Ltd.",
            62601: "Companhia Santomense de Telecomunicações",
            62602: "Unitel São Tomé and Príncipe",
            60801: "Sonatel",
            60802: "Saga Africa Holdings Limited",
            60803: "Expresso Telecom",
            63301: "Cable & Wireless Seychelles",
            63310: "Telecom Seychelles Ltd",
            61901: "Orange SL Limited",
            61903: "Lintel Sierra Leone Limited",
            61905: "Lintel Sierra Leone Limited",
            61906: "Sierra Leone Telephony",
            61909: "InterGroup Telecom SL",
            63701: "Telesom",
            63704: "Somafone FZLLC",
            63710: "NationLink Telecom",
            63720: "SOMNET",
            63750: "Hormuud Telecom Somalia Inc",
            63730: "Golis Telecom Somalia",
            63757: "UNITEL S.a.r.l.",
            63760: "Nationlink Telecom",
            63767: "HTG Group Somalia",
            63771: "Somtel",
            63782: "Telcom Somalia",
            65501: "Vodacom",
            65502: "Telkom SA SOC Ltd",
            65506: "Sentech (Pty) Ltd",
            65507: "Cell C (Pty) Ltd",
            65510: "MTN Group",
            65514: "Neotel Pty Ltd",
            65519: "Wireless Business Solutions (Pty) Ltd",
            65530: "Bokamoso Consortium",
            65531: "Karabo Telecoms (Pty) Ltd.",
            65532: "Ilizwi Telecommunications",
            65533: "Thinta Thinta Telecommunications Pty Ltd",
            65546: "SMS Cellular Services (Pty) Ltd",
            65576: "Comsol Networks (Pty) Ltd",
            65902: "MTN South Sudan",
            65903: "Gemtel",
            65906: "Zain South Sudan",
            65907: "Sudani",
            63401: "Zain Group - Sudan",
            63402: "MTN Sudan",
            63405: "Canar Telecom",
            63407: "Sudatel Group",
            63409: "NEC",
            64002: "MIC Tanzania Limited",
            64003: "Zanzibar Telecom Ltd",
            64004: "Vodacom Tanzania Limited",
            64005: "Bharti Airtel",
            64006: "WIA Company Limited",
            64007: "Tanzania Telecommunication Company LTD (TTCL)",
            64009: "Viettel Tanzania Limited",
            64011: "Smile Telecoms Holdings Ltd.",
            61501: "Togo Telecom",
            61503: "Moov Togo",
            60501: "Orange Tunisie",
            60502: "Tunisie Telecom",
            60503: "Ooredoo Tunisiana",
            64101: "Bharti Airtel",
            64104: "Tangerine Uganda Limited",
            64110: "MTN Uganda",
            64111: "Uganda Telecom Ltd.",
            64114: "Africell Uganda",
            64122: "Bharti Airtel",
            64133: "Smile Communications Uganda Limited",
            64144: "K2 Telecom Ltd",
            64501: "Bharti Airtel",
            64502: "MTN Group",
            64503: "Zambia Telecommunications Company Ltd",
            64801: "Net*One Cellular (Pvt) Ltd",
            64803: "Telecel Zimbabwe (PVT) Ltd",
            64804: "Econet Wireless",
            722010: "Telefónica Móviles Argentina S.A.",
            722034: "Telecom Personal S.A.",
            722040: "TE.SA.M Argentina S.A.",
            722070: "Telefónica Móviles Argentina S.A.",
            722310: "AMX Argentina S.A.",
            722320: "AMX Argentina S.A.",
            722330: "AMX Argentina S.A.",
            722341: "Telecom Personal S.A.",
            70267: "Belize Telemedia Limited (BTL)",
            70269: "Speednet Communications Limited",
            70299: "Speednet Communications Limited",
            73601: "Nuevatel PCS De Bolivia SA",
            73602: "Entel SA",
            73603: "Telefónica Celular De Bolivia S.A",
            72402: "Telecom Italia Mobile",
            72403: "Telecom Italia Mobile",
            72404: "Telecom Italia Mobile",
            72405: "Claro",
            72406: "Telefônica Brasil S.A.",
            72410: "Telefônica Brasil S.A.",
            72411: "Telefônica Brasil S.A.",
            72415: "Sercomtel Celular",
            72417: "Correios Celula",
            72418: "Datora (Vodafone)",
            72421: "Ligue Telecom",
            72423: "Telefônica Brasil S.A.",
            72428: "None",
            72429: "Unifique Telecomunicações S/A",
            72432: "Algar Telecom S.A.",
            72433: "Algar Telecom S.A.",
            72434: "Algar Telecom S.A.",
            72438: "Claro",
            72439: "NII Holdings, Inc.",
            72454: "PORTO SEGURO TELECOMUNICAÇÔES",
            72499: "None",
            73001: "Entel Telefonía Móvil S.A.",
            73002: "Telefónica Móvil de Chile",
            73003: "Claro Chile S.A.",
            73004: "Novator Partners",
            73006: "Blue Two Chile S.A.",
            73008: "VTR S.A.",
            73009: "Novator Partners",
            73010: "Entel Telefonía Móvil S.A.",
            73012: "Telestar Móvil S.A.",
            73013: "Tribe Mobile Chile SPA",
            73019: "Sociedad Falabella Móvil SPA",
            73099: "WILL Telefonía",
            732001: "Colombia Telecomunicaciones S.A. ESP",
            732020: "Une EPM Telecomunicaciones S.A. E.S.P.",
            732099: "Empresas Municipales de Cali",
            732101: "Comunicacion Celular S.A. (Comcel)",
            732103: "Colombia Móvil S.A. ESP",
            732111: "Colombia Móvil S.A. ESP",
            732123: "Colombia Telecomunicaciones S.A. ESP",
            732130: "Avantel S.A.S",
            732154: "Virgin Mobile Colombia S.A.S.",
            732176: "DirecTV Colombia Ltda",
            732187: "Empresa de Telecomunicaciones de Bogotá S.A. ESP",
            732240: "Logistica Flash Colombia SAS",
            732360: "Partners Telecom Colombia SAS",
            71201: "Instituto Costarricense de Electricidad",
            71202: "Instituto Costarricense de Electricidad",
            71203: "Claro CR Telecomunicaciones (Aló)",
            71204: "Liberty Latin America",
            74000: "Otecel S.A.",
            74001: "CONECEL S.A.",
            74002: "Corporación Nacional de Telecomunicaciones (CNT EP)",
            74003: "Otecel S.A.",
            70601: "CTE Telecom Personal, S.A. de C.V.",
            70602: "Digicel, S.A. de C.V.",
            70603: "Telemovil El Salvador S.A.",
            70604: "Telefónica Móviles El Salvador",
            70605: "INTELFON, S.A. de C.V.",
            750001: "Sure South Atlantic Ltd.",
            70401: "Telecomunicaciones de Guatemala, S.A.",
            70402: "Millicom / Local partners",
            70403: "Telecomunicaciones de Guatemala, S.A.",
            7040: "INTELFON Guatemala",
            73800: "E-Networks Inc.",
            73801: "U-Mobile (Cellular) Inc.",
            738002: "Guyana Telephone & Telegraph Co.",
            738003: "Quark Communications Inc.",
            708001: "Servicios de Comunicaciones de Honduras S.A. de C.V.",
            708002: "Celtel",
            708030: "Empresa Hondureña de Telecomunicaciones",
            71021:
              "Empresa Nicaragüense de Telecomunicaciones, S.A. (ENITEL) (América Móvil)",
            710300: "Telefonía Celular de Nicaragua, S.A.",
            71073: "Servicios de Comunicaciones S.A.",
            71401: "Cable & Wireless Panama S.A.",
            71402: "Grupo de Comunicaciones Digitales, S.A.",
            714020: "Grupo de Comunicaciones Digitales, S.A.",
            71403: "América Móvil",
            71404: "Digicel Group",
            74401: "Hola Paraguay S.A.",
            74402: "AMX Paraguay S.A.",
            74404: "Telefónica Celular Del Paraguay S.A. (Telecel)",
            74405: "Núcleo S.A. (TIM)",
            74406: "Copaco S.A.",
            71606: "Telefónica del Perú S.A.A.",
            71607: "Entel Perú S.A.",
            71610: "América Móvil Perú",
            71615: "Viettel Peru S.A.C.",
            71617: "Entel Perú S.A.",
            74602: "Telecommunications Company Suriname (Telesur)",
            74603: "Digicel Group Limited",
            74801: "Administración Nacional de Telecomunicaciones",
            74807: "Telefónica Móviles Uruguay",
            74810: "AM Wireless Uruguay S.A.",
            73402: "Corporacion Digitel C.A.",
            73404: "Telefónica Móviles Venezuela",
            73406: "Telecomunicaciones Movilnet",
            101: "Test network",
            1001: "Test network",
            99999: "Internal use",
            999999: "Internal use",
            90103: "None",
            90105: "Thuraya RMSS Network",
            90106: "Thuraya Satellite Telecommunications Company",
            90111: "None",
            90112: "Telenor Maritime AS",
            90114: "AeroMobile AS",
            90115: "OnAir Switzerland Sarl",
            90116: "Cisco Systems, Inc.",
            90118: "AT&T Mobility",
            90119: "Monaco Telecom",
            90121: "Wins Limited",
            90126: "Telecom Italia Mobile",
            90127: "Monaco Telecom",
            90128: "GDSP (Vodafone's Global Data Service Platform)",
            90131: "Orange S.A.",
            90135: "Globecomm Network Services",
            90136: "Azerfon",
            90137: "TraNR5Gtel",
            90138: "Multiregional TransitTelecom (MTT)",
            90139: "MTX Connect Ltd",
            90140: "Deutsche Telekom AG",
            90141: "One Network B.V.",
            90143: "EMnify GmbH",
            90146: "Telecom26 AG",
            90153: "Inmarsat Ltd.",
            90162: "Twilio Inc.",
            90166: "Limitless Mobile LLC",
            90167: "1NCE GmbH",
            90175: "Podsystem Ltd.",
            90189: "DIDWW Ireland Limited",
            90190: "Truphone Limited",
            90201: "MulteFire Alliance",
            99501: "Sure (Diego Garcia) Ltd",
          },

          nr5g_cells: [],
          lte_cells: [],
          nr5g_cells_parsed: [],
          lte_cells_parsed: [],
          atcmd: "",
          tableRows: [],
          nr5g_neighbourCells: [],
          lte_neighbourCells: [],
          nr5g_neighbourCellsParsed: [],
          lte_neighbourCellsParsed: [],
          neighbourCellsTableRows: [],
          cellScanMode: "Unspecified",
          neighbourCellsScanMode: "Unspecified",
          isLoading: false,
          isCellScanning: false,
          resultDoneCell: false,
          resultDoneNeighbourCell: false,

          init() {
            this.generateNeighbourCellsTableRow();
            this.clearTableRowsBodyCellScan();
          },
          startCellScan() {
            // Make all arrays empty before starting a new scan
            this.nr5g_cells = [];
            this.lte_cells = [];
            this.nr5g_cells_parsed = [];
            this.lte_cells_parsed = [];
            this.tableRows = [];
            this.atcmd = "AT+QSCAN=3,1";

            // Send the AT command to the device
            this.isLoading = true;
            this.isCellScanning = true;

            fetch(
              "/cgi-bin/get_atcommand?" +
                new URLSearchParams({
                  atcmd: this.atcmd,
                })
            )
              .then((res) => {
                return res.text();
              })
              .then((data) => {
                const rawdata = data;
                console.log("Rawdata: ", rawdata);
                const lines = rawdata.split("\n");
                console.log("Lines: ", lines);

                // Get the length of the lines array and remove the first element.
                const linesLength = lines.length;
                lines.splice(0, 1);

                // Get the new length of the lines array and remove the last 3 elements.
                const newLinesLength = lines.length;
                lines.splice(newLinesLength - 3, 3);

                console.log("New Lines: ", lines);

                // Loop through all of the lines. If the line starts with NR5G then add it to the nr5g_cells array. If it starts with LTE then add it to the lte_cells array.

                for (let i = 0; i < lines.length; i++) {
                  if (
                    lines[i] !== "OK" &&
                    lines[i] !== "" &&
                    lines[i] !== "\r"
                  ) {
                    if (lines[i].match(/NR5G/g)) {
                      this.nr5g_cells.push(lines[i]);
                    } else if (lines[i].match(/LTE/g)) {
                      this.lte_cells.push(lines[i]);
                    }
                  }
                }
              })
              .then(() => {
                this.parseNr5gCells();
              })
              .then(() => {
                this.parseLTECells();
              })
              .then(() => {
                this.generateTableRow();
                this.isLoading = false;
                this.isCellScanning = false;
                this.resultDoneCell = true;
              });
          },
          parseNr5gCells() {
            // Parse the NR5G cells
            for (let i = 0; i < this.nr5g_cells.length; i++) {
              let mcc, mnc, freq, pci, rsrp, band, provider;
              const lines = this.nr5g_cells[i].split(",");
              mcc = this.nr5g_cells[i].split(":")[1].split(",")[1];
              mnc = this.nr5g_cells[i].split(":")[1].split(",")[2];
              freq = this.nr5g_cells[i].split(":")[1].split(",")[3];
              pci = this.nr5g_cells[i].split(":")[1].split(",")[4];
              rsrp = this.nr5g_cells[i].split(":")[1].split(",")[5];
              band = this.nr5g_cells[i].split(":")[1].split(",")[12];

              provider = this.convertMCCMNCtoNetworkName(mcc, mnc);

              /// Append the value to lte_cells_parsed with this layout:
              // mcc mnc, band, freq, pci, rsrp
              this.nr5g_cells_parsed.push(
                `${provider}, ${band}, ${freq}, ${pci}, ${rsrp}`
              );
            }
          },

          parseLTECells() {
            for (let i = 0; i < this.lte_cells.length; i++) {
              let mcc, mnc, freq, pci, rsrp, band, provider;
              const lines = this.lte_cells[i].split(",");
              mcc = this.lte_cells[i].split(":")[1].split(",")[1];
              mnc = this.lte_cells[i].split(":")[1].split(",")[2];
              freq = this.lte_cells[i].split(":")[1].split(",")[3];
              pci = this.lte_cells[i].split(":")[1].split(",")[4];
              rsrp = this.lte_cells[i].split(":")[1].split(",")[5];
              band = this.lte_cells[i].split(":")[1].split(",")[12];

              provider = this.convertMCCMNCtoNetworkName(mcc, mnc);

              // Append the value to lte_cells_parsed with this layout:
              // mcc mnc, band, freq, pci, rsrp
              this.lte_cells_parsed.push(
                `${provider}, ${band}, ${freq}, ${pci}, ${rsrp}`
              );
            }
          },

          generateTableRow() {
            this.convertMCCMNCtoNetworkName();
            const tableBody = document.getElementById("cellScanTableBody");
            tableBody.innerHTML = ""; // Clear the table body before generating new rows
            this.tableRows = []; // Reset the array before generating new rows

            if (this.cellScanMode === "Full Scan") {
              // Generate rows for NR5G cells
              for (let i = 0; i < this.nr5g_cells_parsed.length; i++) {
                const nr5Glines = this.nr5g_cells_parsed[i].split(",");

                const signalSvg = this.signalIconSVG(nr5Glines[4]);

                this.tableRows.push(`
          <tr>
            <th scope="row">NR5G</th>
            <td>${nr5Glines[0]}</td>
            <td>${nr5Glines[1]}</td>
            <td>${nr5Glines[2]}</td>
            <td>${nr5Glines[3]}</td>
            <td>${nr5Glines[4]}</td>
            <td>${signalSvg}</td>

          </tr>
        `);
              }

              // Generate rows for LTE cells
              for (let i = 0; i < this.lte_cells_parsed.length; i++) {
                const LTElines = this.lte_cells_parsed[i].split(",");

                const signalSvg = this.signalIconSVG(LTElines[4]);

                this.tableRows.push(`
          <tr>
            <th scope="row">LTE</th>
            <td>${LTElines[0]}</td>
            <td>${LTElines[1]}</td>
            <td>${LTElines[2]}</td>
            <td>${LTElines[3]}</td>
            <td>${LTElines[4]}</td>
            <td>${signalSvg}</td>
          </tr>
        `);
              }
            } else if (this.cellScanMode === "NR5G Only") {
              // Generate rows for NR5G cells
              for (let i = 0; i < this.nr5g_cells_parsed.length; i++) {
                const nr5Glines = this.nr5g_cells_parsed[i].split(",");

                const signalSvg = this.signalIconSVG(nr5Glines[4]);

                this.tableRows.push(`
          <tr>
            <th scope="row">NR5G</th>
            <td>${nr5Glines[0]}</td>
            <td>${nr5Glines[1]}</td>
            <td>${nr5Glines[2]}</td>
            <td>${nr5Glines[3]}</td>
            <td>${nr5Glines[4]}</td>
            <td>${signalSvg}</td>
          </tr>
        `);
              }
            } else if (this.cellScanMode === "LTE Only") {
              // Generate rows for LTE cells
              for (let i = 0; i < this.lte_cells_parsed.length; i++) {
                const LTElines = this.lte_cells_parsed[i].split(",");

                const signalSvg = this.signalIconSVG(LTElines[4]);

                this.tableRows.push(`
          <tr>
            <th scope="row">LTE</th>
            <td>${LTElines[0]}</td>
            <td>${LTElines[1]}</td>
            <td>${LTElines[2]}</td>
            <td>${LTElines[3]}</td>
            <td>${LTElines[4]}</td>
            <td>${signalSvg}</td>
          </tr>
        `);
              }
            }

            // Append the rows to the table body
            for (let i = 0; i < this.tableRows.length; i++) {
              tableBody.innerHTML += this.tableRows[i];
            }
          },

          convertMCCMNCtoNetworkName(mcc, mnc) {
            const mccmnc = mcc + mnc;
            return this.networkNames[mccmnc] || `${mcc} ${mnc}`;
          },

          getNeighbourcellLTEandNR5G() {
            // this.clearTableRowsBodyNeighbourCells();
            // Reset the array before generating new rows
            this.lte_neighbourCells = [];
            this.nr5g_neighbourCells = [];
            this.lte_neighbourCellsParsed = [];
            this.nr5g_neighbourCellsParsed = [];
            this.neighbourCellsTableRows = [];
            this.atcmd =
              'AT+QENG="neighbourcell";+QNWCFG="nr5g_meas_info",1;+QNWCFG="nr5g_meas_info"';
            this.isLoading = true;

            fetch(
              "/cgi-bin/get_atcommand?" +
                new URLSearchParams({
                  atcmd: this.atcmd,
                })
            )
              .then((res) => {
                return res.text();
              })
              .then((data) => {
                const rawdata = data;
                console.log(rawdata);

                let lines = rawdata.split("\n");
                console.log("Lines: ", lines);

                // Get the length of the lines array and remove the first element.
                const linesLength = lines.length;
                lines.splice(0, 1);

                // Get the new length of the lines array and remove the last 3 elements.
                const newLinesLength = lines.length;
                lines.splice(newLinesLength - 3, 3);

                // Remove an index with "" from the array.
                for (let i = 0; i < lines.length; i++) {
                  if (lines[i] === "" || lines[i] === "\r") {
                    lines.splice(i, 1);
                  }
                }

                console.log("Modified: ", lines);

                // Loop through all of the lines. If the line match with LTE then add it to the lte_neighbourCells array. Otherwise, add it to the nr5g_neighbourCells array.
                for (let i = 0; i < lines.length; i++) {
                  if (lines[i].match(/LTE/g)) {
                    this.lte_neighbourCells.push(lines[i]);
                  } else {
                    this.nr5g_neighbourCells.push(lines[i]);
                  }
                }
              })
              .then(() => {
                this.lteNeighbourCellsParse();
              })
              .then(() => {
                this.nr5gNeighbourCellsParse();
              })
              .then(() => {
                this.generateNeighbourCellsTableRow();
                this.isLoading = false;
                this.resultDoneNeighbourCell = true;
              });
          },

          lteNeighbourCellsParse() {
            for (let i = 0; i < this.lte_neighbourCells.length; i++) {
              let freq, pci, rsrp;
              const lines = this.lte_neighbourCells[i].split(",");
              freq = this.lte_neighbourCells[i].split(":")[1].split(",")[2];
              pci = this.lte_neighbourCells[i].split(":")[1].split(",")[3];
              rsrp = this.lte_neighbourCells[i].split(":")[1].split(",")[5];

              // // Append the value to lte_neighbourCellsParsed with this layout:
              // //freq, pci, rsrp
              this.lte_neighbourCellsParsed.push(`${freq}, ${pci}, ${rsrp}`);
            }
          },

          nr5gNeighbourCellsParse() {
            for (let i = 0; i < this.nr5g_neighbourCells.length; i++) {
              let freq, pci, rsrp;
              const lines = this.nr5g_neighbourCells[i].split(",");
              freq = this.nr5g_neighbourCells[i].split(":")[1].split(",")[2];
              pci = this.nr5g_neighbourCells[i].split(":")[1].split(",")[3];
              rsrp = this.nr5g_neighbourCells[i].split(":")[1].split(",")[4];

              // // Append the value to lte_neighbourCellsParsed with this layout:
              // //freq, pci, rsrp
              this.nr5g_neighbourCellsParsed.push(`${freq}, ${pci}, ${rsrp}`);
            }
          },

          generateNeighbourCellsTableRow() {
            console.log(this.neighbourCellsScanMode);
            this.neighbourCellsTableRows = []; // Reset the array before generating new rows
            const tableBody = document.getElementById("neighbourCellTableBody");
            tableBody.innerHTML = "";

            if (this.neighbourCellsScanMode === "LTE and NR5G") {
              // Generate rows for LTE neighbour cells
              for (let i = 0; i < this.lte_neighbourCellsParsed.length; i++) {
                const LTElines = this.lte_neighbourCellsParsed[i].split(",");
                // If rsrp is -55 and above then use this svg

                const signalSvg = this.signalIconSVG(LTElines[2]);
                this.neighbourCellsTableRows.push(`
          <tr>
            <th scope="row">LTE</th>
            <td>${LTElines[0]}</td>
            <td>${LTElines[1]}</td>
            <td>${LTElines[2]}</td>
            <td>${signalSvg}</td>
          </tr>
        `);
              }

              // Generate rows for NR5G neighbour cells
              for (let i = 0; i < this.nr5g_neighbourCellsParsed.length; i++) {
                const nr5Glines = this.nr5g_neighbourCellsParsed[i].split(",");

                const signalSvg = this.signalIconSVG(nr5Glines[2]);

                this.neighbourCellsTableRows.push(`
          <tr>
            <th scope="row">NR5G</th>
            <td>${nr5Glines[0]}</td>
            <td>${nr5Glines[1]}</td>
            <td>${nr5Glines[2]}</td>
            <td>${signalSvg}</td>
          </tr>
        `);
              }
            } else if (this.neighbourCellsScanMode === "LTE") {
              // Generate rows for LTE neighbour cells
              for (let i = 0; i < this.lte_neighbourCellsParsed.length; i++) {
                const LTElines = this.lte_neighbourCellsParsed[i].split(",");

                const signalSvg = this.signalIconSVG(LTElines[2]);

                this.neighbourCellsTableRows.push(`
          <tr>
            <th scope="row">LTE</th>
            <td>${LTElines[0]}</td>
            <td>${LTElines[1]}</td>
            <td>${LTElines[2]}</td>
            <td>${signalSvg}</td>
          </tr>
          `);
              }
            } else if (this.neighbourCellsScanMode === "NR5G") {
              // Generate rows for NR5G neighbour cells

              for (let i = 0; i < this.nr5g_neighbourCellsParsed.length; i++) {
                const nr5Glines = this.nr5g_neighbourCellsParsed[i].split(",");

                const signalSvg = this.signalIconSVG(nr5Glines[2]);

                this.neighbourCellsTableRows.push(`
          <tr>
            <th scope="row">NR5G</th>
            <td>${nr5Glines[0]}</td>
            <td>${nr5Glines[1]}</td>
            <td>${nr5Glines[2]}</td>
            <td>${signalSvg}</td>
          </tr>
          `);
              }
            }

            if (this.neighbourCellsTableRows.length === 0) {
              this.neighbourCellsTableRows.push(`
            <tr>
                <th scope="row">无</th>
                <td>无</td>
                <td>无</td>
                <td>无</td>
                <td>无</td>
            </tr>
        `);
            }

            // Append the rows to the table body
            for (let i = 0; i < this.neighbourCellsTableRows.length; i++) {
              tableBody.innerHTML += this.neighbourCellsTableRows[i];
            }
          },

          signalIconSVG(rsrp) {
            // If rsrp is -55 and above then use this svg
            if (parseInt(rsrp) >= -55) {
              return `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-signal-high"><path d="M2 20h.01"/><path d="M7 20v-4"/><path d="M12 20v-8"/><path d="M17 20V8"/></svg>`;
            } else if (parseInt(rsrp) >= -85) {
              return `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-signal-medium"><path d="M2 20h.01"/><path d="M7 20v-4"/><path d="M12 20v-8"/></svg>`;
            } else if (parseInt(rsrp) >= -95) {
              return `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-signal-low"><path d="M2 20h.01"/><path d="M7 20v-4"/></svg>`;
            } else {
              return `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-signal-zero"><path d="M2 20h.01"/></svg>`;
            }

            return signalSvg;
          },

          clearTableRowsBodyCellScan() {
            // Make all arrays empty
            this.lte_cells = [];
            this.nr5g_cells = [];
            this.lte_cells_parsed = [];
            this.nr5g_cells_parsed = [];
            this.tableRows = [];

            this.resultDoneCell = false;

            const tableBody = document.getElementById("cellScanTableBody");
            tableBody.innerHTML = "";
            this.tableRows.push(`
            <tr>
                <th scope="row">无</th>
                <td>无</td>
                <td>无</td>
                <td>无</td>
                <td>无</td>
                <td>无</td>
                <td>无</td>
            </tr>
        `);

            // Append the rows to the table body
            for (let i = 0; i < this.tableRows.length; i++) {
              tableBody.innerHTML += this.tableRows[i];
            }
          },

          clearTableRowsBodyNeighbourCells() {
            // Make all arrays empty
            this.lte_neighbourCells = [];
            this.nr5g_neighbourCells = [];
            this.lte_neighbourCellsParsed = [];
            this.nr5g_neighbourCellsParsed = [];
            this.neighbourCellsTableRows = [];

            this.resultDoneNeighbourCell = false;

            const tableBody = document.getElementById("neighbourCellTableBody");
            tableBody.innerHTML = "";
            this.neighbourCellsTableRows.push(`
            <tr>
                <th scope="row">无</th>
                <td>无</td>
                <td>无</td>
                <td>无</td>
                <td>无</td>
            </tr>
        `);
            // Append the rows to the table body
            for (let i = 0; i < this.neighbourCellsTableRows.length; i++) {
              tableBody.innerHTML += this.neighbourCellsTableRows[i];
            }
          },
        };
      }

      const ctx = document.getElementById("myChart");

      new Chart(ctx, {
        type: "line",
        data: {
          labels: [
            "0m",
            "1m",
            "2m",
            "3m",
            "4m",
            "5m",
            "6m",
            "7m",
            "8m",
            "9m",
            "10m",
            "11m",
            "12m",
            "13m",
            "14m",
            "15m",

          ],
          datasets: [
            {
              label: "LTE",
              data: [0, 10, 5, 2, 20, 30, 45, 50, 60, 70, 80],
              borderColor: "rgb(255, 99, 132)",
              backgroundColor: "rgba(255, 99, 132, 0.5)",
              borderWidth: 1,
            },
            {
              label: "NR5G",
              data: [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
              borderColor: "rgb(54, 162, 235)",
              backgroundColor: "rgba(54, 162, 235, 0.5)",
              borderWidth: 1,
            },
          ],
          options: {
            responsive: true,
            plugins: {
              legend: {
                position: "top",
              },
              title: {
                display: true,
                text: "Chart.js Line Chart",
              },
            },
          },
        },
      });
    </script>
  </body>
</html>
